from libnum import *

n1 = 19869526284752088148939972354773627021440824533894698351471306514507074380861900899337746265984127203745503431163626292927194075402561350642083535708084259061401774944942303487139743123454945186086440751466038047046765032004612150970950848719541561716848748565998085623961955973126154183160606975887904970483534623474557395741848672541199629461822557952290762508281829069777324330110007319971403723161807001865803082053555594485323704726330461596656583724637363487772306707788883455850088111877624554616608867713229641664259944189686715214749600476932872970837208412021167149814446448621276008478685199626589491072103
n2 = 25494295697375473321252857899221625231822688935999690596959123132795394181801545650716478462630917517506821455499594187037125131674991934561225560148196194018158902673788583445646149997813802656755830524568566221253331430322174085820622392657174862705225294401371342412006513883557841523218761694411840682545681595615026193508601218931383774737152556284656604091573294546995759637708895860241171374764821181665739070177811943750571655444733267642280846124366191147994563232179869914470170731679510812971919415202103015857987687003943346843882948365208988093225179089845716159576436292039301229587968394908153377614733
n3 = 24083785064060535511405832100999131194723125484592241443513012423397355653850614506890799766453569227901046951201644550086548283776506959932283450074399478803879861810508053141216986657521156549846033127516719666165353558057348585298770026625402727254268738716111765712229988016409935512639504223436904404985662178706065468520653194859312444315980012906189755591458006421168438274937569567997346149935394749041225143388079047804446371550593668411818554928761054839047518144771287796898138519724264989403370698748387992284824609014990318797065771102162067784368870360937616207885202090285325524585099648483673921730461
e = 65537
c1 = 6539804048047557815141482917417693725807559194770347972204604201835527457672990917777090485646244334945990407671840051209765314745265407945790748751926619881027320018791645830034051168775561447504658500779797243613196578253480984242951410622136704053385605780434319608065678532928890417999557902155066390955856957741474738673866210755503615696316729427644942191500200749714767228429390741528542442378680308285285581785700738948053282062582143368540424608248916941150853062270786707125180149849561160498338732304909604269485281529049915406127174551318245378003521902473791390417452836137175877037114618874373135449373
c2 = 24711937469673074548897423145692836896076785324540777350486490402150426688364046647173270084375613193777298127411165102117880509907862180384455451137118948899229218560975415693135785055187619528235788445407286043790074139893082980121487516980182720228252348348341253668878576678033766820948782611431802143288245370696180224257916404836720405563643274847074280484462792856619595395342734972129413376568485370109868430749664814544057733196926907746147944441351103267663544158693913681996381415022972214194508614869558267408364583458776356280657582621319898467454650942923480777976181539825363542798226112640816571625085
c3 = 15194896408422329349097203922984853539796539042396962682928825971639634289915198422526326699329221743935756075832684757156104224403096789177888915888790372996186864868789904311364598941890579199097275770150167924962104169815778269068808139194191084491234769445814413965811841852418714420595102451833188863426675614856326169365067436560482404384456791121052021790125294462638764703163172896622687008944536337112985412723093557710269680319322392550882893019792045009403259290732356071247859307688862775413212889975009217976243917113012068908828077088593164525817183467671913093855316041182221108152893068637787554643712

n = [n1, n2, n3]
c = [c1, c2, c3]
p = [0, 0, 0]
for i in range(len(n)):
    for j in range(len(n)):
        if i!=j and gcd(n[i], n[j])!=1:
            p[i] = gcd(n[i], n[j])
            break

q = [n[i]//p[i] for i in range(len(n))]
d = [invmod(e, (p[i]-1)*(q[i]-1)) for i in range(len(p))]
m = [pow(c[i], d[i], n[i]) for i in range(len(n))]
flag = [n2s(x).decode() for x in m]
# ['first part of the flag :flag{n0_CRT_4nd', 'second part of the flag :nO_facTOR_db_', 'third part of the flag: bUT_gcD_1s_r1ght!}']
flag = ''.join(x[x.find(':')+1:] for x in flag).replace(' ', '')
print(flag) # flag{n0_CRT_4ndnO_facTOR_db_bUT_gcD_1s_r1ght!}